Vim normal command一覧
motion
1文字cursor移動
h: 左
j: 上
k: 下
l: 右
左右移動motionは、それぞれ行頭/行末にぶつかるとそれ以上移動しなくなる
単語移動
w : 単語 記号区切り 次の先頭へ
b : 単語 記号区切り 前の先頭へ
e : 単語 記号区切り 次の末尾へ
ge : 単語 記号区切り 前の末尾へ
W : 単語 空白区切り 次の先頭へ
B : 単語 空白区切り 前の先頭へ
E : 単語 空白区切り 次の末尾へ
gE : 単語 空白区切り 前の末尾へ
行をまたいで移動できる
行内移動
0 : 行頭へ
^ : 空白以外の行頭へ
$ : 行末へ
g_: 空白以外の行末へ
f{char}: 行内でcursorの左側にある最初のcharに飛ぶ
t{char}: 行内でcursorの左側にある最初のcharの一つ前に飛ぶ
行移動
gg: 最初の行へ
G: 最後の行へ
H: 画面に表示されている一番上の行に飛ぶ
M: 画面に表示されている真ん中の行に飛ぶ
L: 画面に表示されている一番下の行に飛ぶ
{count}gg/{count}G: count行目へ飛ぶ
{: 前の段落の先頭行へ
}: 次の段落の先頭行へ
スクロール
<C-u>: 画面半分上へスクロール
<C-d>: 画面半分下へスクロール
<C-b>: 1画面分上へスクロール
<C-f>: 1画面分下へスクロール
enter Insert Mode
i: cursorの前で
a: cursorの後ろで
I: 空白以外の行頭で
A: 空白を含めた行末で
o: cursorの下に新しい行を挿入して
O: cursorの上に新しい行を挿入して
editing
置換
r{char}: cursor下の文字をcharに置き換える
~: cursor下の文字の大文字小文字を切り替える
切り取り
それぞれ"xを前につけることで、xレジスタに切り取り結果を格納できる
x: cursor下の文字を切り取る
X: cursorの前の文字を切り取る
d{motion}: motionで指定した範囲を切り取る
D: cursorから改行を除く行末までを切り取る
dd: cursorのいる行を切り取る
改行文字を含む
yank
それぞれ"xを前につけることで、xレジスタにyank結果を格納できる
y{motion}: motionで指定した範囲をyankする
yy: cursorのいる行をyankする
改行文字を含む
paste
それぞれ"xを前につけることで、xレジスタの文字列をpasteできる
p: cursorの前にpasteする
P: cursorの後ろにpasteする
delete and insert
それぞれ"xを前につけることで、xレジスタに切り取り結果を格納できる
C: cursorから改行を除く行末までを切り取ってinsert modeに移る
cc: cursorのいる行を切り取って、insert modeに移る
インデント
>> curosrのいる行のindentを一段深くする
<< curosrのいる行のindentを一段浅くする
undo/redo
u: undo
<C-r>: redo
macro
.: 最後に実行したcommandをもう一度実行する
q{char}: macroの記録を開始する
q押すと、それまでに入力された文字列をcharレジスタに格納する
@{char}: charレジスタ内の文字列をcommandとみなして実行する
Reference
2020/12/12